跳到主要内容

BM83 字符串变形

https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e

package main 

/**
*
* @param s string字符串
* @param n int整型
* @return string字符串
*/
func trans( s string , n int ) string {
ans := make([]byte, n)
// 整体取反
for i := n-1; i>=0; i-- {
if s[i] != ' ' {
ans[n-i-1] = s[i]^32 // 字符大小写翻转
} else {
ans[n-i-1] = s[i]
}
}
var l int
for i := 0; i<n; i++ {
if ans[i] == ' ' {
r := i - 1
for l < r {
ans[l], ans[r] = ans[r], ans[l]
l++
r--
}
l = i + 1
}
}
// 把剩下的部分也取反了
r := n-1
for l < r {
ans[l], ans[r] = ans[r], ans[l]
l++
r--
}

return string(ans)
}